home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / comm / mail / AM119src.lha / strip7.c < prev    next >
C/C++ Source or Header  |  1993-02-17  |  2KB  |  77 lines

  1. /*
  2.  *
  3.  *  AM --- AmigaMail
  4.  *  (C) 1991, 1992 by Christian Riede
  5.  *
  6.  *  AM is distributed in the hope that it will be useful, but WITHOUT ANY
  7.  *  WARRANTY.  No author or distributor accepts responsibility to anyone
  8.  *  for the consequences of using it or for whether it serves any
  9.  *  particular purpose or works at all, unless he says so in writing.
  10.  *  Refer to the GNU General Public License, Version 1, for full details.
  11.  *  
  12.  *  Everyone is granted permission to copy, modify and redistribute AM,
  13.  *  but only under the conditions described in the GNU General Public
  14.  *  License, Version 1.  A copy of this license is supposed to have been 
  15.  *  given to you along with AM so you can know your rights and responsi-
  16.  *  bilities.  It should be in a file named COPYING.  Among other things,
  17.  *  the copyright notice and this notice must be preserved on all copies.
  18.  *
  19.  *  
  20.  *
  21.  */
  22.  
  23. #include "am.h"
  24. #include "config.h"
  25.  
  26. /* translate 8bit iso8859-1 chars to 7bit where possible */
  27. /* please feel free to send additions to the list below */
  28. /* to the author, chr@senga.ka.sub.org */
  29. /* thanks to Markus Kuhn <mskuhn@immd4.informatik.uni-erlangen.de> */
  30.  
  31. static char *iso2asc[96] = {
  32.   " ","!","c","?","?","Y","|","?","\"","(c)","a","<<","?","-","(R)"," ",
  33.   "?","+/-","2","3","'","mu","P",".",",","1","o",">>","1/4","1/2","3/4","?",
  34.   "A","A","A","A","Ae","A","AE","C","E","E","E","E","I","I","I","I",
  35.   "D","N","O","O","O","O","Oe","x","O","U","U","U","Ue","Y","P","ss",
  36.   "a","a","a","a","ae","a","ae","c","e","e","e","e","i","i","i","i",
  37.   "d","n","o","o","o","o","oe",":","o","u","u","u","ue","y","p","y"
  38. };
  39.  
  40.  
  41. static void dostrip7(int c,FILE *out,int *you_have_been_warned)
  42. {
  43.  
  44.     if (c<128)
  45.         fputc(c,out);
  46.     else if (c>=0xa0)
  47.         fputs(iso2asc[c - 0xa0],out);
  48.     else  
  49.     {
  50.         fputc(c,out);
  51.         if (!*you_have_been_warned)
  52.         {
  53.             *you_have_been_warned=TRUE;
  54.             SimpleRequest(Window,"7BIT mail contains nonconvertible non ASCII characters!");
  55.         }
  56.     }
  57. }
  58.  
  59.  
  60. void strip7(FILE *in,FILE *out)
  61. {
  62.     int c;
  63.     int you_have_been_warned=FALSE;
  64.  
  65.     while ((c=getc(in))!=EOF)
  66.         dostrip7(c,out,&you_have_been_warned);
  67. }
  68.  
  69. void linestrip7(UBYTE *Buf,int len,FILE *out)
  70. {
  71.     int you_have_been_warned=FALSE;
  72.  
  73.     while (len-->0)
  74.         dostrip7(*Buf++,out,&you_have_been_warned);
  75. }
  76.  
  77.